
public class Mapa {

	private String mapa;
	private String[] opciones = {"centroVacio", "letraH"};
	private int x, y, minas, cantidadDeBotones;

	private int centroVacio[][] = {
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
	};

	private int letraH[][] = {
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
			{1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1},
	};

	public Mapa(String mapa) {
		super();
		if (hayMapa(mapa))
			this.mapa = mapa;
		else{
			this.mapa = "none";
			x = 10;
			y = 10;
			minas = 9;
		}
		cantidadDeBotones = contarBotones();
	}

	public int getBotones(){
		return cantidadDeBotones;
	}

	private boolean hayMapa(String mapa){
		boolean match = false;
		for (int i = 0; i < opciones.length; i++)
			if (opciones[i].equals(mapa))
				match=true;
		return match;
	}

	public Mapa (int x, int y, int minas){
		super();
		this.mapa = "none";
		this.x = x;
		this.y = y;
		this.minas = minas;
	}

	public boolean celdaEsTransparente(int x, int y){
		if (mapa.equals("none"))
			return false;
		return getMapa()[y][x] == 0;
	}

	public int getAncho(){
		if (mapa.equals("none"))
			return x;
		return getMapa()[0].length;
	}


	private int contarBotones() {
		if (mapa.equals("none"))
			return x * y;
		else{
			int[][] arreglo = getMapa();
			int cuenta = 0;
			for (int i = 0; i < arreglo.length; i++) {
				for (int j = 0; j < arreglo[i].length; j++) {
					if (arreglo[i][j] == 1)
						cuenta++;
				}
			}
			return cuenta;
		}
	}

	public int getAlto(){
		if (mapa.equals("none"))
			return y;
		return getMapa().length;
	}

	public int getMinas(){
		if (mapa.equals("centroVacio"))
			return 35;
		if (mapa.equals("letraH"))
			return 30;
		
		return minas;
	}

	public String getURL(){
		if (mapa.equals("centroVacio"))
			return "imagenes/caraloka2.GIF";
		if (mapa.equals("letraH"))
			return "imagenes/caraloka3.GIF";
		return "imagenes/" + mapa + ".jpg";
	}

	private int[][] getMapa(){
		if (mapa.equals("centroVacio"))
			return centroVacio;
		if (mapa.equals("letraH"))
			return letraH;
		return null;
	}

}
